package com.pattern.CreationalPatterns.FactoryPattern;

/**
 * 工厂模式
 * @author: 月光伴奏
 * @Date 2017-11-28 15:10
 */
public class FactoryPatternDemo {

    public static void main(String[] args) {
        ShapeFactory shapeFactory = new ShapeFactory();

        //获取 Circle 的对象，并调用它的 draw 方法
        Shape shape1 = shapeFactory.getShape("CIRCLE");

        //调用 Circle 的 draw 方法
        shape1.draw();

        //获取 Rectangle 的对象，并调用它的 draw 方法
        Shape shape2 = shapeFactory.getShape("RECTANGLE");

        //调用 Rectangle 的 draw 方法
        shape2.draw();

        //获取 Square 的对象，并调用它的 draw 方法
        Shape shape3 = shapeFactory.getShape("SQUARE");

        //调用 Square 的 draw 方法
        shape3.draw();
        System.out.println("========================================");
        Rectangle rect = (Rectangle) ShapeFactoryGai.getClass(Rectangle.class);
        rect.draw();
        Square square = (Square) ShapeFactoryGai.getClass(Square.class);
        square.draw();
    }
}
